#include <iostream>

//单例模式 : 一个类只创建一个对象
// 1、构造函数私有化，防止外部创建对象
// 2、构建静态函数
// 3、定义静态变量，返回对象指针
class Singleton
{
public:
    static Singleton* getInstance()
    {
        static Singleton s;
        return &s;
    }
private:
    Singleton() {}
};

int main()
{
    Singleton *t1 = Singleton::getInstance();
    Singleton *t2 = Singleton::getInstance();
    Singleton *t3 = Singleton::getInstance();
    printf("%p %p %p\n", t1, t2, t3);
    return 0;
}